// utils/tabBarHelper.js
import {
	useCartStore
} from "/stores/cart.js";

/**
 * 设置 TabBar 徽章（默认读取购物车总数，支持手动传参覆盖）
 * @param {number} [index=3] - TabBar 项的下标（默认购物车 Tab，可自定义）
 * @param {number} [num] - 可选：手动指定徽章数字，不传则自动读取 cartStore.totalCartNum
 */
export const setTabBarBadge = (index = 3, num) => {
	// 1. 若未手动传 num，则自动从 Pinia 读取购物车总数
	const cartStore = useCartStore();
	const badgeNum = num ?? cartStore.totalCartNum; // 优先级：手动传参 > 自动读取

	// 2. 判断当前页面是否为 TabBar 页面（避免非 Tab 页面调用 API 报错）
	const pages = getCurrentPages();
	if (pages.length === 0) return;

	const currentPage = pages[pages.length - 1];
	// 替换为你项目中 TabBar 页面的实际路径（从 pages.json 复制）
	const tabBarPagePaths = [
		"pages/index/index", // Tab 0：首页
		"pages/todo/todo", // Tab 1：待办
		"pages/category/category", // Tab 2：分类
		"pages/cart/cart", // Tab 3：购物车（默认下标）
		"pages/my/my", // Tab 4：我的
	];

	// 3. 仅在 TabBar 页面执行徽章操作
	if (tabBarPagePaths.includes(currentPage.route)) {
		if (badgeNum > 0) {
			uni.setTabBarBadge({
				index,
				text: badgeNum + "", // 徽章文本必须是字符串
				fail: (err) => console.warn("设置 TabBar 徽章失败：", err)
			});
		} else {
			uni.removeTabBarBadge({
				index,
				fail: (err) => console.warn("移除 TabBar 徽章失败：", err)
			});
		}
	}
};

/**
 * 移除指定下标的 TabBar 徽章（默认移除购物车 Tab）
 * @param {number} [index=3] - TabBar 项的下标（默认购物车 Tab）
 */
export const removeTabBarBadge = (index = 3) => {
	setTabBarBadge(index, 0); // 复用方法，传 0 即移除徽章
};